Одной из наиболее мощных и часто используемых возможностей системы Crystal Reports является группировка записей. В реальной жизни часто возникает необходимость сформировать отчет по тем же самым данным, но с измененным порядком группировки. Например, возьмем все те же продажи. Может возникнуть необходимость группировки:
- по товару; - по региону; - по поставщику; - по менеджерам. и т. д.
Если сразу включить все эти группировки в отчет, он получится слишком громоздким и трудночитаемым. Можно конечно сделать несколько разных отчетов.
Элемент ActiveX Crystal Report Control позволяет динамически, в процессе работы приложения управлять группировкой. Для этого служит свойство GroupCondition. Однако, сама группа уже должна присутствовать в отчете. Группы, как и многое другое, представлены в виде массива.
Синтаксис свойства:
[форма.]Report. GroupCondition(индекс массива)[=группа; поле; условие; режим_сортировки]
Аргументы свойства:
| группа | Зарезервированное для каждой группы отчета слово. Первая группа получает имя GROUP1, вторая – GROUP2, и т. д. |
| поле | Поле базы данных или формула отчета, на базе которой построена группа. |
| условие | Зарезервированное слово, определяющее дополнительные условия создания групп. Используется для полей дат и логических полей.Допустимые значения для полей дат: DAILY, WEEKLY, BIWEEKLY, SEMIMONTHLY, MONTHLY, QUATERY, SEMIANNUALLY, ANNUALLY. Для логических полей: TOYES, TONO, EVERYYES, EVERYNO, NEXTISYES, NEXTISNO. Для всех других типов полей допустимо только значение ANYCHANGE, и его обязательно надо указывать. |
| режим_сортировки | Буквы A или D. Буква A определяет восходящий порядок сортировки, D – нисходящий. Задать через это свойство определенный пользователем порядок сортировки нельзя. |
ОБЯЗАТЕЛЬНО необходимо указывать все четыре параметра, разделенные точкой с запятой. Опять же, все значения передаются только в виде строк.